def METHOD_NAME(tf_config):
    """
    start process using subprocess
    """
    argv = sys.argv
    task_type = tf_config["task"]["type"]
    task_id = tf_config["task"]["index"]
    worker_argv = [sys.executable, "-m", "dlrover.trainer.entry.local_entry"]
    worker_argv.extend(argv[1:])
    worker_argv.extend(["--platform", "ray"])
    worker_argv.extend(["--mock", "True"])
    worker_argv.extend(["--task_type", task_type])
    worker_argv.extend(["--task_id", str(task_id)])
    logger.info(worker_argv)
    env = dict(os.environ)
    fild_path = os.path.dirname(__file__)
    fild_path = fild_path.split("/")
    python_path = "/".join(fild_path[: len(fild_path) - 3])
    logger.info(python_path)
    env.update(
        {
            "PYTHONPATH": python_path,
        }
    )
    logger.info(json.dumps(tf_config))
    env["WORKFLOW_ID"] = os.getenv("WORKFLOW_ID", default="test_id")
    env["USERNUMBER"] = os.getenv("USERNUMBER", default="test_user")
    process = subprocess.Popen(worker_argv, shell=False, env=env)
    return process