Just getting started with using the multiprocessing library in my code base to parallelise a simple for loop, where previously, in a serial for loop, I would import a custom configuration .py file and pass it to be a function to be run.
However I'm having issues with passing in the configuration module to be parellelised.
NB. There are multiple custom configuration.py which I want to pass into the different processes.
Example:
def get_custom_config(): 
   config_list = []
   for project_config in configs:
       config = importlib.import_module("config.%s.%s" % (prefix, project_config)
       config_list.append(config)
   return config_list
def print_config(config):
   print config.something_in_config_file
if __name__ = "__main__":
   config_list = get_custom_config()
   pool = mp.Pool(processes=2)
   pool.map(print_config, config_list)
Returns:
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/multiprocessing/pool.py", line 251, in map
    return self.map_async(func, iterable, chunksize).get()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/multiprocessing/pool.py", line 567, in get
    raise self._value
cPickle.PicklingError: Can't pickle <type 'module'>: attribute lookup __builtin__.module failed
What is the best way of passing a module to a parallel process?