docstr: Load / reload an external module.
  
  Parameters
  ----------
  module_path: string
      the path to the module relative to the main script
  
  Returns
  -------
  module: module object
docstr_tok: ["Load","\/","reload","an","external","module",".","Parameters","--","--","--","--","--","module_path",":","string","the","path","to","the","module","relative","to","the","main","script","Returns","--","--","--","-","module",":","module","object"]
code: def load_module(module_path):
      """Load / reload an external module.
  
      Parameters
      ----------
      module_path: string
          the path to the module relative to the main script
  
      Returns
      -------
      module: module object
  
      """
      if module_path in sys.modules:
          return importlib.reload(sys.modules[module_path])
      else:
          return importlib.import_module(module_path)
  
imports: import importlib
  import os
  import sys
  import logging
  from inspect import getmembers, isfunction
  import warnings
  import trx.trx_file_memmap
  import numpy
  from dipy.io.image import load_nifti, save_nifti
  from dipy.io.streamline import load_tractogram, save_tractogram
  from dipy.reconst.shm import convert_sh_descoteaux_tournier
  from dipy.tracking.streamlinespeed import length
  from dipy.utils.tractogram import concatenate_tractogram
  from dipy.workflows.workflow import Workflow
label_desc: Use image node_id 3 for calling the FetchFlow obj's underlying member method code with example usage: obj.load_module(module_path) and returns: importlib, importlib