docs: def start(self):
          """start command in background and does not wait for it.
  
          :rtype: self
  
          """
          if self.is_started:
              raise EasyProcessError(self, 'process was started twice!')
  
          if self.use_temp_files:
              self._stdout_file = tempfile.TemporaryFile(prefix='stdout_')
              self._stderr_file = tempfile.TemporaryFile(prefix='stderr_')
              stdout = self._stdout_file
              stderr = self._stderr_file
  
          else:
              stdout = subprocess.PIPE
              stderr = subprocess.PIPE
  
          cmd = list(map(uniencode, self.cmd))
  
          try:
              self.popen = subprocess.Popen(cmd,
                                            stdout=stdout,
                                            stderr=stderr,
                                            cwd=self.cwd,
                                            env=self.env,
                                            )
          except OSError as oserror:
              log.debug('OSError exception: %s', oserror)
              self.oserror = oserror
              raise EasyProcessError(self, 'start error')
          self.is_started = True
          log.debug('process was started (pid=%s)', self.pid)
          return self