code: def sync_fit(
      df_train,
      df_test,
      estimator,
      n_folds=2,
      stratify=True,
      random_state=1,
  ):
      """Compute the univariate drifts between df_train and df_test datasets.
  
      Multi-threaded version.
  
      Parameters
      ----------
      df_train : pandas dataframe of shape = (n_train, p)
          The train set
  
      df_test : pandas dataframe of shape = (n_test, p)
          The test set
  
      estimator : classifier, defaut = RandomForestClassifier(n_estimators = 50,
                                                              n_jobs=-1,
                                                              max_features=1.,
                                                              min_samples_leaf = 5,
                                                              max_depth = 5)
          The estimator that estimates the drift between two datasets
  
      n_folds : int, default = 2
          Number of folds used to estimate the drift
  
      stratify : bool, default = True
          Whether the cv is stratified (same number of train and test samples
          within each fold)
  
      random_state : int, default = 1
          Random state for cv
  
      Returns
      -------
      float
          drift measure
  
      """
      # We will compute the indices of the CV in each thread
      de = DriftEstimator(estimator, n_folds, stratify, random_state)
      de.fit(df_train, df_test)
  
      return de.score()
  
file_path: MLBox/mlbox/preprocessing/drift/drift_threshold.py
imports: import sys
  from joblib import Parallel, delayed
  from sklearn.tree import DecisionTreeClassifier
  from .drift_estimator import DriftEstimator
label_desc: Use image node_id 1 for calling a global function with example usage: sync_fit(df_train, df_test, estimator, n_folds, stratify, random_state) and returns: de