code: def _parallel_fit(
      n_estimators,
      clfs,
      X,
      total_n_estimators,
      rp_flags,
      objective_dim,
      rp_method,
      verbose,
  ):
      X = check_array(X)
      # Build estimators
      estimators = []
      rp_transformers = []
      for i in range(n_estimators):
          estimator = clone(clfs[i])
          if verbose > 1:
              print(
                  "Building estimator %d of %d for this parallel run "
                  "(total %d)..."
                  % (i + 1, n_estimators, total_n_estimators)
              )
  
          if rp_flags[i] == 1:
              X_scaled, jlt_transformer = jl_fit_transform(
                  X, objective_dim, rp_method
              )
              rp_transformers.append(jlt_transformer)
  
              estimator.fit(X_scaled)
              estimators.append(estimator)
          else:
              # if projection is not used, use an identity matrix to keep the shape
              rp_transformers.append(np.ones([X.shape[1], X.shape[1]]))
              estimator.fit(X)
              estimators.append(estimator)
      return estimators, rp_transformers
  
file_path: SUOD/suod/models/parallel_processes.py
imports: from sklearn.base import clone
  import numpy
  from scipy.stats import rankdata
  from joblib import effective_n_jobs
  from sklearn.utils import check_array
  from sklearn.utils.validation import check_is_fitted
  from pyod.utils.utility import score_to_label
  from .jl_projection import jl_fit_transform, jl_transform
  from ..utils.utility import raw_score_to_proba
label_desc: Use image node_id 5 for calling a global function with example usage: _parallel_fit(n_estimators, clfs, X, total_n_estimators, rp_flags, objective_dim, rp_method, verbose) and returns: estimators,  rp_transformers