docstr:     create a method to run in parallel the recommenders during the co-training process
  
  :return: True ou False, if threshold is reached (False) or not (True)
docstr_tok: ["create","a","method","to","run","in","parallel","the","recommenders","during","the","co-training","process",":","return",":","True","ou","False",",","if","threshold","is","reached","(","False",")","or","not","(","True",")"]
code: def run_recommenders_parallel(self):
      """
          create a method to run in parallel the recommenders during the co-training process
  
      :return: True ou False, if threshold is reached (False) or not (True)
      """
  
      flag = True
  
      pool = Pool()
      result = pool.map(self.run_recommenders, self.recommenders)
      pool.close()
      pool.join()
  
      for n, r in enumerate(self.recommenders):
          if not result[n][1]:
              flag = False
          else:
              self.recommenders_predictions.setdefault(r, result[n][0])
  
      return flag
  
imports: from multiprocessing.pool import Pool
  from random import shuffle
  import numpy
  import os
  from caserec.recommenders.rating_prediction.itemknn import ItemKNN
  from caserec.recommenders.rating_prediction.matrixfactorization import MatrixFactorization
  from caserec.recommenders.rating_prediction.svdplusplus import SVDPlusPlus
  from caserec.recommenders.rating_prediction.userknn import UserKNN
  from caserec.utils.process_data import ReadFile
  from caserec.utils.extra_functions import ComputeBui
label_desc: Use image node_id 15 for calling the ECoRec obj's underlying member method code with example usage: obj.run_recommenders_parallel() and returns: flag