<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def call_parallel(self, cdata, low):
        '''
        Call the state defined in the given cdata in parallel
        '''
        # There are a number of possibilities to not have the cdata
        # populated with what we might have expected, so just be smart
        # enough to not raise another KeyError as the name is easily
        # guessable and fallback in all cases to present the real
        # exception to the user
        name = (cdata.get('args') or [None])[0] or cdata['kwargs'].get('name')
        if not name:
            name = low.get('name', low.get('__id__'))

        proc = salt.utils.process.MultiprocessingProcess(
                target=self._call_parallel_target,
                args=(name, cdata, low))
        proc.start()
        ret = {'name': name,
                'result': None,
                'changes': {},
                'comment': 'Started in a separate process',
                'proc': proc}
        return ret