<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _generate_async(self, generator):
 """ Return the previous generator object after having run the first element evaluation as a background task. Args: generator (iterable):
 A generator function. Returns: iterable: The generator function with first element evaluated in background. """

        first_value_future = self._workers.submit(next, generator)

        def get_first_element(future=first_value_future):
            """
            Get first element value from future.

            Args:
                future (concurrent.futures._base.Future): First value future.

            Returns:
                Evaluated value
            """
            try:
                yield future.result()
            except StopIteration:
                return

        return chain(get_first_element(), generator)