How do I restrict a user from edit his/her own profile
You can either hide them from the form on the Manage Form tab, or use a form alter hook to set #access to FALSE if they don't fit a certain role.

You can also try the Field Permissions module.