async def METHOD_NAME(self, job: Job) -> Job:
    async with self.sem:
        running_job = job.create_running_job(self._storage, self._stopper)
        run_function = functools.partial(
            job.run_function, running_job, **self.run_function_kwargs
        )
        code, sol = await self.loop.run_in_executor(
            self.master_executor, catch_exception, run_function
        )
        # check if exception happened in worker
        if code == 1:
            if "SearchTerminationError" in sol:
                pass
            else:
                format_msg = "\n\n/**** START OF REMOTE ERROR ****/\n\n"
                format_msg += sol
                format_msg += "\nException happening in remote rank was propagated to root process.\n"
                format_msg += "\n/**** END OF REMOTE ERROR ****/\n"
                raise RunFunctionError(format_msg)
        job.set_output(sol)
    return job