how to find out Schedulable class is already scheduled or not?
To find out if a given class is scheduled use an SOQL query like:
SELECT Id, CreatedById, CreatedDate, Status, CompletedDate
FROM AsyncApexJob
WHERE ApexClass.NamespacePrefix = :namespace
AND ApexClass.Name = :className
Where namespace is your namespace (leave out if you are not in a package) and className is the class name string, such as "MyExampleSchedulable".