code: def exec_in_new_process(func, *args, **kargs):
      """Launches a function in a separate process. Takes variable number of arguments which are passed to the function.
      The process IS NOT FORKED by 'exec'ed.
  
      :param func: Function to be executed in a separate process.
      :param args: position arguments passed to the func
      :param kargs: named arguments passed to the func
      :return:
      """
  
      # Store function handle and arguments into a pickle
      new_process_runnable_handle, new_process_runnable_file = mkstemp(
          suffix="runnable"
      )
      with os.fdopen(new_process_runnable_handle, "wb") as f:
          dill.dump((func, args, kargs), f)
  
      bootstrap_package_name = "{}.{}".format(
          __package__, os.path.splitext(os.path.basename(__file__))[0]
      )
      # Popen this script (__main__) below will be an entry point
      process = subprocess.Popen(
          args=[
              sys.executable,
              "-m",
              bootstrap_package_name + "_entrypoint",
              new_process_runnable_file,
          ],
          executable=sys.executable,
      )
      return process
  
imports: import logging
  import os
  import subprocess
  import sys
  from tempfile import mkstemp
  import dill
label_desc: Use image node_id 1 for calling a global function with example usage: exec_in_new_process(func) and returns: process