I want to move a site collection "MY SITE" from my development environment to my client's Production environment. Is there any best practice to do it in SP2010?
You have a few options here. Probably the easiest way is to do a granular backup of your site collection, either using the UI or PowerShell (Backup-SPSite). Then restore that on your production server (PowerShell only - Restore-SPSite). This works well for a one-off migration of content. There is more information on TechNet.
If you just have the one site collection in your content database, you could back up the whole database and re-attach it on your production farm. This means doing your backup/restore work at the SQL level, and this might appeal if you are more comforatable in SQL than in SharePoint, otherwise no real advantage over the first option.
You could also create a "site template" with content, which actually creates a solution package, which can be used to create a site on the production server. This is more suitable if you want to be able to create multiple sites with the same structure, rather than what you are trying to do which is copy a site collection. Although a solution package is the normal vehicle for deploying development artifacts to a production server, it is probably not appropriate for what you are trying to do here.
A further option is to set up a Content Deployment path between your development and production servers. This would make sense if you wanted to periodically update the content on your development server and have your production server kept up-to-date. It is more likely you would do this with a staging server. For a development server it doesn't really make sense - automated content deployment is probably the last thing you need. You also would need connectivity between the two environments to do this.
My recommendation would be to use granular backup, put it on a USB stick, and restore it on your client's production farm. I wouldn't go so far as to say it is a "best practice" because you wouldn't normally be authoring content in a development environment, the content would typically flow in the other direction. But I think it is the best solution for what you are trying to do.
The SharePoint Content Deployment Wizard is perfect for this task. I've personally used it to do the exact same thing you mentioned, but for SP 2007. I highly recommend using it for 2010. If you need some help on the settings I can advise you.