code: def _begin(self, client=None, retry=DEFAULT_RETRY):
          
          if self.state is not None:
              raise ValueError("Job already begun.")
  
          client = self._require_client(client)
          path = "/projects/%s/jobs" % (self.project,)
  
          # jobs.insert is idempotent because we ensure that every new
          # job has an ID.
          api_response = client._call_api(
              retry, method="POST", path=path, data=self.to_api_repr()
          )
          self._set_properties(api_response)
docs: API call:  begin the job via a POST request
  
          See
          https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/insert
  
          :type client: :class:`~google.cloud.bigquery.client.Client` or
                        ``NoneType``
          :param client: the client to use.  If not passed, falls back to the
                         ``client`` stored on the current dataset.
  
          :type retry: :class:`google.api_core.retry.Retry`
          :param retry: (Optional) How to retry the RPC.
  
          :raises: :exc:`ValueError` if the job has already begin.