By passing
this
to
saveFileDialog1.ShowDialog(this)
you are using an object on 1 thread that was created on another thread.
You'll need to write a thread-safe method in the Client class to give your worker thread access to anything you want to use in the Client class.