docs: def start(self, attach=False):
          """
          Start a container.  If the container is running it will return itself.
  
          returns a running Container.
          """
          if self.state()['running']:
              logger.info('is already running.', extra={'formatter': 'container', 'container': self.name})
              return True
          else:
              try:
                  logger.info(
                      'is being started.', extra={'formatter': 'container', 'container': self.name}
                  )
  
                  # returns None on success
                  self.client.start(self.id)
                  if self._transcribe:
                      self.start_transcribing()
  
              except APIError as e:
                  #
                  # This is some bs... I assume that its needed because of dockers changes in 1.18 api.
                  # I will resolve this next week when we stop passing properties to start.
  
                  if e.response.status_code == 500:
                      self.client.start(self.id)
                  else:
                      raise RuntimeError("Docker Error: {0}".format(e.explanation))
  
              if attach:
                  self.attach()
                  exit_code = self.wait()
  
              else:
                  exit_code = self._wait_for_exit_code()
  
              return True if exit_code == 0 else False