code: def submit(self):
          
          futures = []
          while self.submitted < 4 and not self.done():
              part = self.parts.pop(0)
              futures.append(
                  self.pool.submit(
                      _download_part, self.file_path, self.session, self.url,
                      self.retry, self.timeout, *part)
              )
              self.submitted += 1
              self.total_submitted += 1
  
          return futures
docs: Partitions the file into chunks and submits them into group of 4
          for download on the api download pool.