def get_group_cv_splits(groups, cv):
    """
    Presplit the groups using the given cross-validation scheme.
    
    Normally, the train/test split is done right before training and testing, 
    but this function will presplit the data for all cross folds before any 
    training/testing is done.
    
    This is useful for keeping the training and testing sets consistent between
    cross-predictions.
    """
    groups_cv_splits = []
    
    for group in groups:
        group_cv = [(train, test) for train, test in cv.split(group[0])]
        groups_cv_splits.append(group_cv)
    
    return groups_cv_splits