Yes, you apply after you have received your BS degree. Each program will have be competitive since usually there are only 4-6 spots available each year. In regards to GPA requirements, many programs have a minimum 3.0 GPA requirement but again it is dependent upon the program. You would need to look up each program of interest to see if there is a minimum required. The 3.0 GPA minimum I quoted is for the UC Davis and UC San Diego CLS programs.